#list CRUD 操作
#create
content = """"
school_1 = {'name':'小屋', 'class':'二班'}
school_2 = {'name':'张三', 'class':'三班'}
school_list = [school_1,school_2] # 列表里面嵌套字典
a = school_list
a
[{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}]
a.append({'name':'李四', 'class':'四班'})  #append()
a
[{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}]

a_1 = [{'name': '王麻子', 'class': '五班'}]  # + 拼接两个列表,然后返回一个新列表
a_2 = a + a_1
a_2
[{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}]

a += a_1  # +=
a
[{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}]

L = [a] * 10
L
[[{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class':
'四班'}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三'
, 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'
}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋',
 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name':
'王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}
, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}], [{'name': '小屋', 'class': '二班'}, {'name': '张三', 'class': '三班'}, {'name': '李四', 'class': '四班'}, {'name': '王麻子', 'class': '五班'}]]

a_1
[{'name': '王麻子', 'class': '五班'}]  # insert(,) 指定位置添加元素
a_1.insert(7, "san")
a_1
[{'name': '王麻子', 'class': '五班'}, 'san']
a_1.insert(1,"san")
a_1
[{'name': '王麻子', 'class': '五班'}, 'san', 'san']
a_1.insert(0, "san")
a_1
['san', {'name': '王麻子', 'class': '五班'}, 'san', 'san']

# Retrieve
L  = ['a', 'b', 'c']   #赋值了一个新列表
L
['a', 'b', 'c']  # 切片
L[0:1]
['a']

L.index('a')  # index() 固定位置的修改
0
L.insert(L.index('a'), 'd')
L
['d', 'a', 'b', 'c']

#update
L[0] = "start"  # 索引赋值
L
['start', 'a', 'b', 'c']

L[0:2] = "a"  # 切片赋值
L
['a', 'b', 'c']

# DELETE
x = L  #pop 末尾删除元素
x
['a', 'b', 'c']
x = L.pop()
x
'c'

L = [5, 1, 4, 7, 8]  # sort() 排序
L.sort()
L
[1, 4, 5, 7, 8]

list(reversed(L))  #reversed 倒序
[8, 7, 5, 4, 1]



#tupple R 操作
t = ('a', 'b', 'c', 'd')  #索引取值
t[1]
'b'

t.index('a')  #index()
0

t[0:2]  #切片
('a', 'b')



# dict CRUD 操作
#create
d = {'a': 1, 'b': 2, 'c': 3}  #键对键赋值
d['a'] = 2
d
{'a': 2, 'b': 2, 'c': 3}

d_1 = {'d':4}  # update 合并字典
d.update(d_1)
d
{'a': 2, 'b': 2, 'c': 3, 'd': 4}

# Retrieve
d                  # 键对值访问缺失key会报错,而get可以指定默认值
{'a': 2, 'b': 2, 'c': 3, 'd': 4}
d['a']
2
d.get('b')
2

d.keys()    #keys values items 返回()()
dict_keys(['a', 'b', 'c', 'd'])
d.values()
dict_values([2, 2, 3, 4])
d.items()
dict_items([('a', 2), ('b', 2), ('c', 3), ('d', 4)])

#DELETE
d
{'a': 2, 'b': 2, 'c': 3, 'd': 4}
d.pop('a')     # pop(key) 删除当前元素并返回value



# set CRUD
#create
s = {'a', 'b', 'c'} #add
s.add(2)
s
{'c', 2, 'a', 'b'}

s.update('a') # update
s
{'c', 2, 'a', 'b'}
s.update('f')
s
{2, 'f', 'c', 'b', 'a'}

# Retrieve
'f' in s   # 长成员检测符
True

#update
s
{2, 'f', 'c', 'b', 'a'}
s_1 = {'e'}
s.union(s_1)
{'c', 2, 'f', 'b', 'e', 'a'}

#DELETE
s
{2, 'f', 'c', 'b', 'a'}
s.pop()  #pop() 当成无序删除并返回元素
2
s
{'f', 'c', 'b', 'a'}

s 
{'f', 'c', 'b', 'a'}   # remove 不报错   discard 报错
s.remove('f')
s
{'c', 'b', 'a'}
s.discard('c')
s
{'b', 'a'}
"""